package br.com.dispositivosmoveis.acompanhamentodeconta.service;

import java.util.List;

import android.content.ContentValues;
import android.database.sqlite.SQLiteConstraintException;
import br.com.dispositivosmoveis.acompanhamentodeconta.Enums.SituacaoNumeroComanda;
import br.com.dispositivosmoveis.acompanhamentodeconta.abstracts.CrudService;
import br.com.dispositivosmoveis.acompanhamentodeconta.abstracts.NumeroComandaService;
import br.com.dispositivosmoveis.acompanhamentodeconta.model.NumeroComanda;
import br.com.dispositivosmoveis.acompanhamentodeconta.repository.NumeroComandaRepositoryImpl;

public class NumeroComandaServiceImpl extends
		CrudService<NumeroComanda, NumeroComandaRepositoryImpl> implements NumeroComandaService {

	
	public NumeroComandaServiceImpl(){
	}

	@Override
	public Long insert(NumeroComanda entity) throws SQLiteConstraintException,
			Exception {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void update(NumeroComanda entity) throws SQLiteConstraintException,
			Exception {
		
	}

	@Override
	public NumeroComanda obtain(int id) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<NumeroComanda> getAll() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public boolean checkStatus(String numero) {
		boolean available = true;
		NumeroComanda numeroComanda = this.getRepository().findByNumeroSituacao(numero, SituacaoNumeroComanda.D);
		
		if(numeroComanda == null){
			available = false;
		}
		return available;
	}

	@Override
	public void updateSituacaoByNumero(String numero,
			SituacaoNumeroComanda situacaoNumeroComanda) throws SQLiteConstraintException, Exception {
		ContentValues values = new ContentValues();
		values.put(NumeroComanda.COLUMN_SITUACAO,situacaoNumeroComanda.getLabel());
		
		String whereClause = NumeroComanda.COLUMN_NUMERO + " = ?";
		
		this.getRepository().update(values, whereClause, new String[]{numero});
	}


}
